[IA64] Virtualize dom0 lid
authorawilliam@xenbuild.aw <awilliam@xenbuild.aw>
Tue, 8 Aug 2006 20:40:57 +0000 (14:40 -0600)
committerawilliam@xenbuild.aw <awilliam@xenbuild.aw>
Tue, 8 Aug 2006 20:40:57 +0000 (14:40 -0600)
Because dom0 can't write eid/id into iosapics, lid can be virtualized.

Signed-off-by: Tristan Gingold <tristan.gingold@bull.net>
xen/arch/ia64/xen/dom_fw.c
xen/arch/ia64/xen/vcpu.c

index 19daa411ba76036832c5ed437a6aec2f6c70bfe3..5eb6643959fe345c954079f4f57731dfff8769a9 100644 (file)
@@ -253,10 +253,14 @@ acpi_update_lsapic (acpi_table_entry_header *header, const unsigned long end)
                enable = 0;
        if (lsapic->flags.enabled && enable) {
                printk("enable lsapic entry: 0x%lx\n", (u64)lsapic);
+               lsapic->id = lsapic_nbr;
+               lsapic->eid = 0;
                lsapic_nbr++;
        } else if (lsapic->flags.enabled) {
                printk("DISABLE lsapic entry: 0x%lx\n", (u64)lsapic);
                lsapic->flags.enabled = 0;
+               lsapic->id = 0;
+               lsapic->eid = 0;
        }
        return 0;
 }
index a300303f76cc50f2987391a1936587df4117d2e2..18fd1989b8d062ee36989d13e9691075c7445a7d 100644 (file)
@@ -763,12 +763,8 @@ UINT64 vcpu_deliverable_timer(VCPU *vcpu)
 
 IA64FAULT vcpu_get_lid(VCPU *vcpu, UINT64 *pval)
 {
-       /* Use real LID for domain0 until vIOSAPIC is present.
-          Use EID=0, ID=vcpu_id for domU.  */
-       if (vcpu->domain == dom0)
-               *pval = ia64_getreg(_IA64_REG_CR_LID);
-       else
-               *pval = vcpu->vcpu_id << 24;
+       /* Use EID=0, ID=vcpu_id.  */
+       *pval = vcpu->vcpu_id << 24;
        return IA64_NO_FAULT;
 }